home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-03
/
pbwndo.zip
/
PWDEMO.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-10-26
|
63KB
|
2,259 lines
$COMPILE EXE
$DYNAMIC
$ERROR ALL OFF
$LIB ALL OFF
$OPTION CNTLBREAK OFF
$STACK 5000
$IF 0
PowerBASIC Windows Demo
PBWindows
Copr. 1990, 1991 Barry Erick
$ENDIF
Powerbasicwindows:'a Label FOR An EXTERNAL Debugger
Version$ ="Version 2.51"
Copyright$="Copyright 1990, 1991 Barry Erick"
Member$ = " Member ASP "
Copyright1$="Certain portions Copyright 1990 Robert S. Zale"
$IF 0
TO Compile, use PBC AS:
PBC PWdemo -CE
IF you DO NOT declare Max.Window% BEFORE you Include
PBWindow TO any value >5, it will default TO 5 in the file.
In this demo 14 are used, AS we show 12
windows AND 2 are used in the menuing AT that time.
Special instructions FOR USING PBWindows.PBU :
Place PbWindow.Pbu in your PBUD directory OR default directory
Place PbWindow.Inc in your INC directory OR default directory
Place, in your program, the NEXT six non-REM lines, or, at least the
Max.Window% AND AutoBuildTime% assignments AND the $INCLUDE statement.
PBWindows may have all library functions OFF AND compiler errors off.
It may be benificial TO turn Interpreted PRINT ON.
Demo version... The full version also comes with an additional program
that allows partial windows TO save memory. IF you don't scroll, zoom
OR use menus, smaller models can be used. This can be done in any
combination of the above. The demo only adds constants necessary, AND
is fully functionable AND NOT crippled in any way.
$ENDIF
DEFINT A - Z
$INCLUDE "PWDEMO.INC"
$SEGMENT
'[******************]
SUB Minormpause(Numtokill%,Minlimit%,Maxlimit%,Char$)
LOCAL A$,X%, A!, B!,Curmx%
'min Limit Is Lower Threshold
'max Limit Is Max Threshold
'if These Are Exceeded, then The Mouse Moved Horizontally Enough
A! = TIMER
IF Needdecon% THEN
CALL Getmouseposandbutton(But%,Xx%,Yy%)
Curmx% = Getmx%(Xx%)
END IF
DO
A$=""
B! = TIMER
IF Needdecon% THEN
Btn% = 0'left
CALL Getmouseposandbutton(But%,Xx%,Yy%)
Xx% = Getmx%(Xx%)
IF Xx% <> Curmx% THEN
IF Xx% > Maxlimit% THEN
A$=CHR$(0,77)
ELSEIF Xx% < Minlimit% THEN
A$=CHR$(0,75)
END IF
END IF
IF Leftbuttondown% THEN
DO
LOOP WHILE Leftbuttondown%
A$=CHR$(13)
END IF
IF Char$<>"" THEN
IF A$<>"" AND A$=CHR$(13) THEN
A$=Char$
END IF
END IF
END If'Decon
IF A$="" AND INSTAT THEN
A$=INKEY$
ELSEIF INSTAT THEN
Dum$=INKEY$
END IF
IF A$<>"" THEN
Keyhit$ = A$
IF Char$ = CHR$(255) THEN EXIT Loop'Exit LOOP ON ANY KEY
IF A$ = Char$ THEN EXIT LOOP
END IF
LOOP UNTIL B! => (A! + %autotime +AutoFudge%)
FOR X% = 1 TO Numtokill%'12
CALL Removebox
NEXT
END SUB
'[******************]
SUB Pause(Numtokill%)
SHARED Wpt%
LOCAL A$,X%, A!, B!
IF Ega% THEN
Lns% = 34
ELSEIF Vga% THEN
Lns% = 42
ELSE
Lns% = 21
END IF
IF Needdecon% THEN
CALL Makebox(Lns%,51,4,28,%black,%white,2,0,0,-1,-1)
CALL Ctrbox(2,"or Click Mouse")
ELSE
CALL Makebox(Lns%,51,3,28,%black,%white,2,0,0,-1,-1)
END IF
CALL Ctrbox(1,"Press Spacebar to continue")
DO
A$=Inkey$'empty Keystroke Buffer
LOOP UNTIL A$=""
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
A$=INKEY$
IF A$=" " THEN EXIT LOOP
END IF
IF Needdecon% THEN
IF Leftbuttondown% THEN
DO
LOOP WHILE Leftbuttondown%
EXIT LOOP
END IF
END IF
LOOP UNTIL B! => A! + %autotime + Autofudge%
FOR X% = 1 TO Numtokill%+1'plus One , Because This Is A WINDOW
CALL Removebox
NEXT
END SUB
SUB Screen1(Finished%)'main Title
SHARED Wpt%,About%,Mouseirq%,Mouseversion@,Mousetype$,Ver$,Os$,Version$
LOCAL X%,Y%
Origwpt% = Wpt%
IF Ega% THEN
Lns% = 8
Lnn% = 14
Lnm% = 19
Ln4% = 6
ELSEIF Vga% THEN
Lns% = 12
Lnn% = 18
Lnm% = 23
Ln4% = 10
ELSE
Lns% = 4
Lnn% = 10
Lnm% = 15
Ln4% = 3
END IF
CALL Makebox(Lns%,21,6,40,%black,%white,1,4,0,-1,-1)
CALL Boxtitle(6,Version$,-1,-1)
IF Finished% THEN
CALL Ctrbox(1,"Thanks for Viewing")
END IF
IF About THEN
CALL Ctrbox(4,"Shareware. Source and Manual - $25")
L1% = 1
ELSE
L1% = 2
END IF
CALL Ctrbox(L1,"Mouseable Windows for")
CALL Ctrbox(L1+1,"PowerBASIC")
IF Finished% THEN
CALL Ctrbox(4,"-Power and Speed-")
END IF
IF Iscolr% THEN
Bkc% = %red
Bbk% = %blue
ELSE
Bkc% = %black
Bbk% = %black
END IF
CALL Makebox(Lnn%,18,4,46,%brightwhite,Bkc%,0,4,0,-1,-1)
CALL Ctrbox(1,"Copyright 1990,1991 Barry Erick, ASP Member")
CALL Ctrbox(2,"PowerBASIC Copyright 1990 Robert S. Zale")
IF NOT Finished% AND NOT About% THEN
CALL Makebox(Lnm%,9,10,64,%brightwhite,Bbk%,2,4,0,-1,-1)
CALL Makebox(Ln4%,2,10,15,%brightwhite,Bbk%,2,4,0,-1,-1)
CALL Makebox(Ln4%,65,10,15,%brightwhite,Bbk%,2,4,0,-1,-1)'memory Window
CALL Bootmemory(Memory%,J%)
CALL Prtbox(1,2,"Mem:" + STR$(Memory%)+"k")
CALL Prtbox(2,2,"Free:"+Using$("###.#",(FRE(-1)*.001))+"k")
J$ = STR$(Whatcpu%)
CALL Prtbox(3,2,"80"+LTrim$(J$)+" CPU")
IF Coproc% THEN Msg$=" " ELSE Msg$="No "
CALL Prtbox(4,2,Msg$+"co-proc")
IF Emsexists% THEN
CALL Prtbox(5,4,"EMS:")
CALL Prtbox(6,3,"Base:"+HEX$(Emsbase%))
CALL Totalemspages(I%,Emsmem%,I%,I%)
CALL Prtbox(7,3,"Mem:"+STR$(Emsmem)+"k")
CALL Prtbox(8,3,"Ver:"+EmsVersion$)
ELSE
CALL Prtbox(4,4,"No EMS")
END IF
DECR Wpt%
IF Needdecon% THEN
CALL Prtbox(1,3,"Mouse Info:")
CALL Prtbox(2,2,Mousetype$+" Mouse")
A$=STR$(A%\256)+"."+LTRIM$(STR$(A% MOD 256))
CALL Prtbox(3,2,"Version"+STR$(Mouseversion@))
CALL Prtbox(4,2,"Uses IRQ"+STR$(Mouseirq%))
ELSE
CALL Prtbox(2,2,"No Mouse")
END IF
J%=Cdroms%
IF J% >0 THEN
J$=STR$(J%)+" CD-Rom"
IF J% > 1 THEN J$=J$+"s"
ELSE
J$="No CD-Roms"
END IF
CALL Prtbox(5,2,J$)
DECR Wpt
V$=Dosversion$
V$=Os$+ver$+v$
CALL Prtbox(1,2,V$)
Ll% = 2
IF Desqview% THEN
J$=""
ELSE
J$="not"
END IF
CALL Prtbox(Ll%,2,"Desqview is "+j$+" active")
INCR Ll%
J% = Win386%
SELECT CASE J% MOD 256
CASE 0,&h80
J$="not running"
CASE 1,-1
J$="Version 2.0"
CASE ELSE
J$="Version "+Ltrim$(STR$(J% MOD 256))+"."+Ltrim$(STR$(J%\256))
END SELECT
CALL Prtbox(Ll%,2,"Windows 386 is "+j$)
INCR Ll%
IF Dosappend% <> 0 THEN
J$=""
ELSE
J$= "not "
END IF
CALL Prtbox(Ll%,2,"DOS Append is "+j$+"resident")
INCR Ll%
IF Dosprint% THEN
J$=""
ELSE
J$="not "
END IF
CALL Prtbox(Ll%,2,"DOS Print is "+j$+"resident")
INCR Ll%
IF Dosassign% THEN
J$=""
ELSE
J$="not "
END IF
CALL Prtbox(Ll%,2,"DOS Assign is "+j$+"active")
INCR Ll%
IF Dosshare% THEN
J$=""
ELSE
J$="not "
END IF
CALL Prtbox(Ll%,2,"DOS Share is "+j$+"resident")
INCR Ll%
CALL Prtbox(Ll%,2,"Current Path:"+CurDir$)
Ll%=1
IF Vgaok% THEN
J$="VGA"
ELSEIF Egaok% THEN
J$="EGA"
ELSEIF Cgaok% THEN
J$="CGA"
ELSEIF NOT Iscolor% THEN
J$="Mono"
END IF
CALL Prtbox(Ll%,42,J$ +" Video Adapter")
INCR Ll%
CALL Prtbox(Ll%,42,Colorormono$+" Video Mode")
INCR Ll%
CALL Prtbox(Ll%,42,"Vid Base: "+HEX$(Screensegment)+"h")
INCR Ll%
IF Comports% = 0 THEN
J$="No"
ELSE
J$=LTRIM$(STR$(Comports%))
END IF
CALL Prtbox(Ll%,42,"Com Ports: "+j$)
INCR Ll%
CALL Prtbox(Ll%,42,"Printers:"+Str$(Printers))
INCR Ll%
CALL Prtbox(Ll%,42,"Drive "+left$(Curdir$,2))
Dr%=0
CALL Getdriveinfo(Dr%,J&,K&)
INCR Ll%
CALL Prtbox(Ll%,42,USING$("Total:###,###,###",J&))
INCR Ll%
CALL Prtbox(Ll%,42,USING$(" Free:###,###,###",K& ))
END IF
IF Finished% AND Iscolr% THEN
DECR Wpt%
FOR Y% = 7 TO 0 STEP -1
FOR X% = 0 TO 15
CALL Recolor(X%,Y%,-1,-1)
' It Happens So Fast That We Have To Delay
DELAY .05
NEXT
NEXT
INCR Wpt%
ELSEIF About% THEN
CALL Pause(1)
ELSE
IF INSTAT THEN
WHILE INKEY$<>"" :WEND
END IF
CALL Boxtitle(5,"Any Key to continue",-1,-1)'delay 8
IF Needdecon% THEN
CALL Boxtitle(5,"Click or any key to start",-1,-1)
END IF
INCR Wpt,2
DO
IF Needdecon% THEN
IF Leftbuttondown% THEN
DO
LOOP UNTIL NOT Leftbuttondown%
EXIT LOOP
END IF
END IF
IF INSTAT THEN
J$=INKEY$
EXIT LOOP
END IF
LOOP
END IF
DO UNTIL Wpt% = Origwpt%
CALL Removebox
LOOP
END SUB
'[******************]
SUB Screen2'scroll
LOCAL X%,Cf,Cb,Cbf,Cbb
IF NOT Iscolr% THEN
Cf = %white
Cf1 = %white
Cbb = %white
Cbbb= %black
Brdc= %black
ELSE
Cf = %green
Cf1 = %black
Cbb = %red
Cbbb= %white
Brdc= %white
END IF
CALL Makebox(11,25,5,34,Cf1,Cbbb,3,0,0,-1,Brdc)
CALL Ctrbox(1,"PowerBASIC - The Fast Compiler")
CALL Ctrbox(2," ")
CALL Ctrbox(3,"Windows")
CALL Pause(1)
CALL Makebox(4,17,9,46,Cf,%black,3,0,0,Cbb,%black)
CALL Prtbox(1,2,"▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ")
CALL Prtbox(2,2,"▒ ▒ ▒ ▒▒ ▒ ▒ ▒ ▒▒ ▒▒ ▒ ▒ ▒ ▒ ")
CALL Prtbox(3,2,"▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒ ")
CALL Prtbox(4,2,"▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒▒ ")
CALL Prtbox(5,2,"▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒")
CALL Prtbox(6,2,"▒▒ ▒▒ ▒ ▒ ▒▒ ▒ ▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒ ▒")
CALL Prtbox(7,2,"▒▒ ▒▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ▒▒▒ ▒▒ ▒▒ ▒▒▒▒ ")
DELAY 1.25
FOR X% = 1 TO 5
CALL Boxscroll(0,-1,-1)
DELAY .03
NEXT
CALL Ctrbox(7,"Scrolling")
CALL Boxscroll(0,-1,-1)
DELAY .051
CALL Ctrbox(7,"Windows")
CALL Boxscroll(0,-1,-1)
DELAY .051
CALL Ctrbox(7,"Using")
CALL Boxscroll(0,-1,-1)
DELAY .051
CALL Ctrbox(7," PowerBASIC")
CALL Boxscroll(0,-1,-1)
DELAY .051
CALL Boxscroll(0,-1,-1)
DELAY 1.21
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"██ ██ ███ █ █ ████ ███ ██ ██ ████ ")
DELAY .051
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"██ ██ █ █ ██ █ █ ██ ██ ██ ██ █ █")
DELAY .051
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"█ █ █ █ █ █ █ █ █ █ █ █ █ █ ██")
DELAY .051
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"█ █ █ █ █ █ █ █ █ █ █ █ █ █ ███")
DELAY .051
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"█ █ █ █ █ █ █ █ █ █ █ █ ██")
DELAY .051
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"█ █ █ ██ █ █ █ ██ ██ █ █ █ █")
DELAY .051
CALL Boxscroll(1,-1,-1)
CALL Prtbox(1,2,"█ █ ███ █ █ ████ ███ █ █ ████ ")
DELAY .5
CALL Pause(1)
END SUB
'[******************]
SUB Screen3'windows
SHARED Num$(),Zoom
LOCAL Apart%,X%
Apart% = 5
IF EGA THEN
Rws1 = 10
Rws2 = 32
ELSEIF VGA THEN
Rws1 = 12
Rws2 = 35
ELSE
Rws1 = 5
Rws2 = 15
END IF
FOR X% = 1 TO 12
IF X% >6 THEN Rw% = Rws2 ELSE Rw% = Rws1
IF X% = 7 THEN
Apart% = 5
IF Zoom THEN
IF Iscolr% THEN
CALL Zoombox(Rw%,Apart%,6,10,X% MOD 8,2,0,0,X% MOD 2,-1,-1)
ELSE
CALL Zoombox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,7,0)
END IF
ELSE
IF Iscolr% THEN
CALL Makebox(Rw%,Apart%,6,10,X% MOD 8,2,0,0,X% MOD 2,-1,-1)
ELSE
CALL Makebox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,7,0)
END IF
END IF
ELSE
IF Zoom THEN
IF Iscolr% THEN
CALL Zoombox(Rw%,Apart%,6,10,X% MOD 8,7-(X% MOD 8),_
0 ,0,X% MOD 2,-1,-1)
ELSE
CALL Zoombox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,-1,-1)
END IF
ELSE
IF Iscolr% THEN
CALL Makebox(Rw%,Apart%,6,10,X% MOD 8,7-(X% MOD 8),_
0 ,0,X% MOD 2,-1,-1)
ELSE
CALL Makebox(Rw%,Apart%,6,10,7,0,2,0,X% MOD 2,-1,-1)
END IF
END IF
END IF
CALL Ctrbox(2,"Window")
CALL Ctrbox(3,Num$(X%))
IF X%=8 AND Needdecon THEN
IF Iscolr% THEN
CALL Boxtitle(2,"Click",16,-1)
ELSE
CALL Boxtitle(2,"Click",31,0)
END IF
END IF
IF X% = 9 THEN
IF Iscolr% THEN
IF NOT Needdecon THEN
CALL Boxtitle(2,"Press",16,-1)
ELSE
CALL Boxtitle(2,"or",16,-1)
END IF
ELSE
IF NOT Needdecon THEN
CALL Boxtitle(2,"Press",31,0)
ELSE
CALL Boxtitle(2,"or",31,0)
END IF
END IF
END IF
IF X% = 10 THEN
IF Iscolr% THEN
IF NOT Needdecon THEN
CALL Boxtitle(2,"Spacebar",16,-1)
ELSE
CALL Boxtitle(2,"Press",16,-1)
END IF
ELSE
IF NOT Needdecon THEN
CALL Boxtitle(2,"Spacebar",31,0)
ELSE
CALL Boxtitle(2,"Press",31,0)
END IF
END IF
END IF
IF X%=11 AND Needdecon THEN
IF Iscolr% THEN
CALL Boxtitle(2,"Spacebar",16,-1)
ELSE
CALL Boxtitle(2,"Spacebar",31,0)
END IF
END IF
INCR Apart% , 12
NEXT
CALL Minormpause(12,1,80," ")
END SUB
'[******************]
SUB Screen4'frames
SHARED Zoom
IF Zoom THEN
IF Iscolr% THEN
CALL Zoombox(10,25,5,30,%green,%black,0,0,0,-1,-1)
ELSE
CALL Zoombox(10,25,5,30,7,0,0,0,0,-1,-1)
END IF
ELSE
IF Iscolr% THEN
CALL Makebox(10,25,5,30,%green,%black,0,0,0,-1,-1)
ELSE
CALL Makebox(10,25,5,30,7,0,0,0,0,-1,-1)
END IF
END IF
CALL Ctrbox(2,"There are 10 Frames available:")
END SUB
'[******************]
SUB Pointers'For Frames
CALL Ctrbox(1,CHR$(24))
CALL Prtbox(3,1,CHR$(27))
CALL Prtbox(3,20,CHR$(26))
CALL Ctrbox(5,CHR$(25))
END SUB
'[******************]
SUB Screen5'more Frames
SHARED Num$(),Zoom
LOCAL Bfcc,Brcc
IF Zoom THEN
IF Iscolr% THEN
CALL Zoombox(3,3,7,22,%red,%white,0,0,0,-1,-1)
ELSE
CALL Zoombox(3,3,7,22,0,7,0,0,0,-1,-1)
END IF
ELSE
IF Iscolr% THEN
CALL Makebox(3,3,7,22,%red,%white,0,0,0,-1,-1)
ELSE
CALL Makebox(3,3,7,22,0,7,0,0,0,-1,-1)
END IF
END IF
CALL Pointers
CALL Ctrbox(2,"Window")
CALL Ctrbox(3,"with")
CALL Ctrbox(4,"No Frame")
IF Zoom THEN
IF Iscolr% THEN
CALL Zoombox(3,55,7,22,%brown,%blue,1,0,0,-1,-1)
ELSE
CALL Zoombox(3,55,7,22,0,7,1,0,0,-1,-1)
END IF
ELSE
IF Iscolr% THEN
CALL Makebox(3,55,7,22,%brown,%blue,1,0,0,-1,-1)
ELSE
CALL Makebox(3,55,7,22,0,7,1,0,0,-1,-1)
END IF
END IF
CALL Pointers
CALL Ctrbox(3,"Single")
IF Zoom THEN
CALL Zoombox(17,3,7,22,%black,%white,2,0,0,-1,-1)
ELSE
CALL Makebox(17,3,7,22,%black,%white,2,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(3,"Double")
IF Iscolr% THEN
Frcc = %red
Bfcc = %cyan
ELSE
Frcc = %black
Bfcc = %white
END IF
IF Zoom THEN
CALL Zoombox(17,55,7,22,Frcc,%white,3,0,0,-1,-1)
ELSE
CALL Makebox(17,55,7,22,Frcc,%white,3,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(2,"Single Horizontal")
CALL Ctrbox(4,"Double Vertical")
IF Zoom THEN
CALL Zoombox(17,29,7,22,%black,Bfcc,4,0,0,-1,-1)
ELSE
CALL Makebox(17,29,7,22,%black,Bfcc,4,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(2,"Double Horizontal")
CALL Ctrbox(4,"Single Vertical")
IF Zoom THEN
CALL Zoombox(3,29,7,22,%black,Bfcc,5,0,0,-1,-1)
ELSE
CALL Makebox(3,29,7,22,%black,Bfcc,5,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(2,"Single Horizontal")
CALL Ctrbox(4,"No Vertical")
DELAY .53
CALL Pause(7)
END SUB
'[******************]
SUB Screen5A'More Frames
SHARED Num$(),Zoom
LOCAL Frcc,Bfcc,Ffcc
IF Iscolr% THEN
Frcc = %red
Bfcc = %cyan
ELSE
Frcc = %black
Bfcc = %white
END IF
IF Zoom THEN
CALL Zoombox(3,3,7,22,Frcc,%white,7,0,0,-1,-1)
ELSE
CALL Makebox(3,3,7,22,Frcc,%white,7,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(2,"Window")
CALL Ctrbox(3,"with")
CALL Ctrbox(4,"Solid Frame")
IF Iscolr% THEN
Ffcc = %brown
Frcc = %blue
ELSE
Ffcc = %black
Ffcc = %white
END IF
IF Zoom THEN
CALL Zoombox(3,55,7,22,Ffcc,Frcc,8,0,0,-1,-1)
ELSE
CALL Makebox(3,55,7,22,Ffcc,Frcc,8,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(3,"Light Hatch")
IF Zoom THEN
CALL Zoombox(17,3,7,22,%black,%white,9,0,0,-1,-1)
ELSE
CALL Makebox(17,3,7,22,%black,%white,9,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(3,"Medium Hatch")
IF Iscolr% THEN
Ffcc = %red
ELSE
Ffcc = %black
END IF
IF Zoom THEN
CALL Zoombox(17,55,7,22,Ffcc,%white,10,0,0,-1,-1)
ELSE
CALL Makebox(17,55,7,22,Ffcc,%white,10,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(3,"Heavy Hatch")
IF Iscolr% THEN
Frcc = %cyan
ELSE
Frcc = %white
END IF
IF Zoom THEN
CALL Zoombox(10,29,7,22,%black,Frcc,6,0,0,-1,-1)
ELSE
CALL Makebox(10,29,7,22,%black,Frcc,6,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(2,"Double Horizontal")
CALL Ctrbox(4,"No Vertical")
DELAY .53
CALL Pause(5)
END SUB
'[******************]
SUB Screen6'shadows
SHARED Standalone%
LOCAL Brc
IF Iscolr% THEN Bcr = %red ELSE Bcr = %black
CALL Makebox(0,1,26,80,%white,Bcr,13,0,0,-1,-1)
CALL Ctrbox(1,"- And that Government of the People -")
CALL Ctrbox(25,"President Lincoln, Gettysburg National Cemetery,"+_
" Nov 10, 1863")
CALL Prtbox(2,0,CHR$(34)+"█████")
CALL Prtbox(3,1,"█ our score and seven years ago, our fathers brought"+_
" forth on this continent")
CALL Prtbox(4,1,"██ a new nation conceived in liberty and dedicated to"+_
" the proposition that all")
CALL Prtbox(5,1,"█ men are created equal. Now we are engaged in a"+_
" great civil war testing")
CALL Prtbox(6,1,"█ whether that nation or any nation so conceived and"+_
" so dedicated can long")
CALL Prtbox(7,1,"endure. We are met on a great battlefield of that war."+_
" We have come to")
CALL Prtbox(8,1,"dedicate a portion of that field as a final resting"+_
" place for those who here")
CALL Prtbox(9,1,"gave their lives that that nation might live. It is"+_
" altogether fitting and")
IF Standalone% THEN L% = 13 ELSE L% = 16
CALL Prtbox(10,1,"proper that we should do this. But in a larger sense we"+_
" cannot dedicate, we")
CALL Prtbox(11,1,"cannot consecrate, we cannot hallow this ground. The"+_
" brave men,living and dead")
CALL Prtbox(12,1,"who struggled here have consecrated it far above our"+_
" poor power to add or")
CALL Prtbox(L%,1,"detract. The world will little note nor long remember"+_
" what we say here. It is")
CALL Prtbox(L%+1,1,"for us the living rather to be dedicated here to"+_
" the unfinished work which")
CALL Prtbox(L%+2,1,"they who fought here have thus far so nobly advanced."+_
" It is rather for us to")
CALL Prtbox(L%+3,1,"be here dedicated to the great task remaining before us"+_
" that from these")
CALL Prtbox(L%+4,1,"honored dead we take increased devotion to that cause for which"+_
" they gave the")
CALL Prtbox(L%+5,1,"last full measure of devotion - that we here highly resolve"+_
" that these dead")
CALL Prtbox(L%+6,1,"shall not have died in vain, that this nation under God"+_
" shall have a new birth")
CALL Prtbox(L%+7,1,"of freedom and that government of the people, by"+_
" the people, for the people,")
CALL Prtbox(L%+8,1,"shall not perish from the earth."+CHR$(34))
IF NOT Standalone% THEN
CALL Makebox(13,15,3,52,%white,Bcr,1,0,0,-1,-1)
CALL Ctrbox(1,"There are 10 Shadows available:")
ELSEIF VGA OR EGA THEN
' Since We Have An Extra Window.. Get Above It...
IF EGA THEN
Spotln = 28
ELSEIF VGA THEN
Spotln = 33
END IF
IF Iscolr% THEN
Bcr = %cyan
Ffr = %gray
ELSE
Bcr = %black
Ffr = %white
END IF
CALL Makebox(Spotln,5,10,70,Ffr,Bcr,2,4,0,%black,%white)
CALL Prtbox(3,5,"You can only protect your liberties in this world by")
CALL Prtbox(4,5,"protecting the other man's freedom. You can only be")
CALL Prtbox(5,5,"free if I am free.")
CALL Prtbox(6,45,"- Clarence Darrow")
END IF
END SUB
'[******************]
SUB Screen7'more Shadows
SHARED Num$(),Zoom
LOCAL X%,A$,A!,B!,Fcr,Bcr
IF VGA OR EGA THEN
' Since We Have An Extra Window.. Get Above It...
Nv = 3
IF EGA THEN
Spotln = 28
ELSEIF VGA THEN
Spotln = 33
END IF
IF Iscolr% THEN
Bcr = %cyan
Ffr = %gray
ELSE
Bcr = %black
Ffr = %white
END IF
CALL Makebox(Spotln,15,10,50,Ffr,Bcr,2,4,0,%black,%white)
IF Standalone THEN
CALL Prtbox(3,5,"You can only protect your liberties in this world by")
CALL Prtbox(4,5,"protecting the other man's freedom. You can only be")
CALL Prtbox(5,5,"free if I am free.")
CALL Prtbox(6,45,"- Clarence Darrow")
ELSE
CALL Prtbox(4,5,"God does not play dice with the Universe")
CALL Prtbox(5,30,"Einstein")
END IF
ELSE
Nv = 2
END IF
IF Iscolr% THEN Fcr = %red ELSE Fcr = %black
IF Zoom THEN
CALL Zoombox(3,3,7,22,Fcr,%white,1,0,0,-1,-1)
ELSE
CALL Makebox(3,3,7,22,Fcr,%white,1,0,0,-1,-1)
END IF
CALL Pointers
CALL Ctrbox(2,"Window")
CALL Ctrbox(3,"with")
CALL Ctrbox(4,"No Shadow")
IF Iscolr% THEN
Fcr = %brown
Bcr = %blue
ELSE
Fcr = %black
Bcr = %white
END IF
IF Zoom THEN
CALL Zoombox(17,55,7,22,Fcr,Bcr,1,1,0,-1,-1)
ELSE
CALL Makebox(17,55,7,22,Fcr,Bcr,1,1,0,-1,-1)
END IF
CALL Prtbox(3,1,CHR$(27))
CALL Ctrbox(5,CHR$(25))
CALL Ctrbox(2,"Left Drop")
CALL Ctrbox(3,"Solid Shadow")
IF Zoom THEN
CALL Zoombox(10,29,7,22,%black,%white,1,2,0,-1,-1)
ELSE
CALL Makebox(10,29,7,22,%black,%white,1,2,0,-1,-1)
END IF
CALL Ctrbox(5,CHR$(25))
CALL Prtbox(3,20,CHR$(26))
CALL Ctrbox(2,"Right Drop")
CALL Ctrbox(3,"Solid Shadow")
IF Iscolr% THEN Fcr = 20 ELSE Fcr = 31
CALL Boxtitle(2,"Press Spacebar",Fcr,7)
IF Iscolr% THEN Fcr = %red ELSE Fcr = %black
IF Zoom THEN
CALL Zoombox(3,55,7,22,Fcr,%white,1,3,0,-1,-1)
ELSE
CALL Makebox(3,55,7,22,Fcr,%white,1,3,0,-1,-1)
END IF
CALL Prtbox(3,1,CHR$(27))
CALL Ctrbox(5,CHR$(25))
CALL Ctrbox(2,"Left Drop")
CALL Ctrbox(3,"Transparent Shadow")
IF Iscolr% THEN Bcr = %cyan ELSE Bcr = %white
IF Zoom THEN
CALL Zoombox(17,3,7,22,%black,Bcr,1,4,0,-1,-1)
ELSE
CALL Makebox(17,3,7,22,%black,Bcr,1,4,0,-1,-1)
END IF
CALL Ctrbox(5,CHR$(25))
CALL Prtbox(3,20,CHR$(26))
CALL Ctrbox(2,"Right Drop")
CALL Ctrbox(3,"Transparent Shadow")
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
A$=INKEY$
IF A$ = " " THEN EXIT LOOP
END IF
IF Needdecon THEN
IF Leftbuttondown THEN
DO
LOOP WHILE Leftbuttondown
EXIT LOOP
END IF
END IF
LOOP UNTIL B! = > A! + %autotime + Autofudge%
FOR X% = 1 TO 5
CALL Removebox
NEXT
IF Zoom THEN
CALL Zoombox(3,55,7,22,Fcr,%white,1,5,0,-1,-1)
ELSE
CALL Makebox(3,55,7,22,Fcr,%white,1,5,0,-1,-1)
END IF
CALL Prtbox(3,1,CHR$(27))
CALL Ctrbox(5,CHR$(25))
CALL Ctrbox(2,"Left Drop")
CALL Ctrbox(3,"Light Hatch")
CALL Ctrbox(4,"Shadow")
IF Iscolor THEN
Fcr = %brown
Bcr = %blue
ELSE
Fcr = %black
Bcr = %white
END IF
IF Zoom THEN
CALL Zoombox(3,3,7,22,Fcr,Bcr,1,6,0,-1,-1)
ELSE
CALL Makebox(3,3,7,22,Fcr,Bcr,1,6,0,-1,-1)
END IF
CALL Prtbox(3,20,CHR$(26))
CALL Ctrbox(5,CHR$(25))
CALL Ctrbox(2,"Right Drop")
CALL Ctrbox(3,"Light Hatch")
CALL Ctrbox(4,"Shadow")
IF Zoom THEN
CALL Zoombox(17,3,7,22,%black,%white,1,7,0,-1,-1)
ELSE
CALL Makebox(17,3,7,22,%black,%white,1,7,0,-1,-1)
END IF
CALL Ctrbox(5,CHR$(25))
CALL Prtbox(3,1,CHR$(27))
CALL Ctrbox(2,"Left Drop")
CALL Ctrbox(3,"Medium Hatch")
CALL Ctrbox(4,"Shadow")
IF Iscolr% THEN Fcr = %red ELSE Fcr = %black
IF Zoom THEN
CALL Zoombox(17,55,7,22,Fcr,%white,1,8,0,-1,-1)
ELSE
CALL Makebox(17,55,7,22,Fcr,%white,1,8,0,-1,-1)
END IF
CALL Prtbox(3,20,CHR$(26))
CALL Ctrbox(5,CHR$(25))
CALL Ctrbox(2,"Right Drop")
CALL Ctrbox(3,"Medium Hatch")
CALL Ctrbox(4,"Shadow")
IF Iscolr% THEN Bcr = %cyan ELSE Bcr = %white
IF Zoom THEN
CALL Zoombox(3,29,7,22,%black,Bcr,1,9,0,-1,-1)
ELSE
CALL Makebox(3,29,7,22,%black,Bcr,1,9,0,-1,-1)
END IF
CALL Ctrbox(5,CHR$(25))
CALL Prtbox(3,1,CHR$(27))
CALL Ctrbox(2,"Left Drop")
CALL Ctrbox(3,"Heavy Hatch")
CALL Ctrbox(4,"Shadow")
IF Zoom THEN
CALL Zoombox(17,29,7,22,%black,Bcr,1,10,0,-1,-1)
ELSE
CALL Makebox(17,29,7,22,%black,Bcr,1,10,0,-1,-1)
END IF
CALL Ctrbox(5,CHR$(25))
CALL Prtbox(3,20,CHR$(26))
CALL Ctrbox(2,"Right Drop")
CALL Ctrbox(3,"Heavy Hatch")
CALL Ctrbox(4,"Shadow")
IF Iscolr% THEN Fcr = 20 ELSE Fcr = 31
CALL Boxtitle(2,"Press Spacebar",Fcr,7)
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
A$ = INKEY$
IF A$ = " " THEN EXIT LOOP
END IF
IF Needdecon THEN
IF Leftbuttondown THEN
DO
LOOP WHILE Leftbuttondown
EXIT LOOP
END IF
END IF
LOOP UNTIL B!=>A! +%AutoTime + Autofudge
FOR X% = 1 TO 6
CALL Removebox
NEXT
IF VGA OR EGA THEN DECR Wpt
IF Iscolr% THEN
CALL Boxtitle(6,"Press Spacebar",23,%red)
ELSE
CALL Boxtitle(6,"Press Spacebar",31,0)
END IF
IF VGA OR EGA THEN INCR Wpt
CALL Minormpause(Nv,1,80," ")',0,0,0,0)
END SUB
'[******************]
SUB Screen8'title Demo
SHARED Num$()
LOCAL A!,B!,Fcr,Fbcr,Bbcr,Bcr,Cc1,Cc2,Cc3,Bk,I
IF Iscolr% THEN
Fcr = %green
Fcb = %red
ELSE
Fcr = %white
Fcb = %black
END IF
CALL Makebox(11,28,4,51,Fcr,Fcb,0,0,0,-1,-1)
CALL Ctrbox(1,"There are 12 Title Positions available:")
CALL Ctrbox(2,"6 Horizontal and 6 vertical")
IF Iscolr% THEN
Fcr = %red
ELSE
Fcr = %black
END IF
CALL Makebox(3,35,7,28,Fcr,%white,1,0,0,%white,Fcr)
CALL Ctrallbox(1,4,"Window")
CALL Ctrallbox(2,4,"with")
CALL Ctrallbox(3,4,"Horizontal")
CALL Ctrallbox(4,4,"Titles in top and bottom")
CALL Boxtitle(1,Num$(1),-1,-1)
CALL Boxtitle(2,Num$(2),-1,-1)
CALL Boxtitle(3,Num$(3),-1,-1)
CALL Boxtitle(4,Num$(4),-1,-1)
CALL Boxtitle(5,Num$(5),-1,-1)
CALL Boxtitle(6,Num$(6),-1,-1)
IF Iscolr% THEN
Fbcr = %yellow
Bbcr = %blue
ELSE
Fbcr = %white
Bbcr = %black
END IF
CALL Makebox(14,35,9,28,%black,%white,1,1,0,Fbcr,Bbcr)
CALL Ctrallbox(1,4,"Window")
CALL Ctrallbox(2,4,"with")
CALL Ctrallbox(3,4,"Horizontal and Vertical")
CALL Ctrallbox(4,4,"Titles Centered")
CALL Boxtitle(2,Num$(2),-1,-1)
CALL Boxtitle(5,Num$(5),-1,-1)
CALL Boxtitle(7,Num$(7),-1,-1)
CALL Boxtitle(8,Num$(8),-1,-1)
IF Iscolr% THEN
Bcr = %green
Ffcr = %red
ELSE
Bcr = %white
Ffcr = %black
END IF
CALL Makebox(3,4,21,24,%black,Bcr,1,2,0,Ffcr,%white)
CALL Ctrallbox(1,4,"Window")
CALL Ctrallbox(2,4,"with")
CALL Ctrallbox(3,4,"Vertical")
CALL Ctrallbox(4,4,"Titles in Four Corners")
CALL Boxtitle(9,Num$(9),-1,-1)
CALL Boxtitle(10,Num$(10),-1,-1)
CALL Boxtitle(11,Num$(11),-1,-1)
CALL Boxtitle(12,Num$(12),-1,-1)
CALL Pause(4)
IF Iscolr% THEN
Cc1 = %blue
Cc2 = %cyan
Cc3 = %blue
Bk = 1
ELSE
Cc1 = %black
Cc2 = %black
Cc3 = %white
Bk = 4
END IF
CALL Makebox(10,26,9,28,%white,Cc1,Bk,1,0,Cc3,Cc2)
CALL Ctrallbox(1,6,"This demo shows")
CALL Ctrallbox(2,6,"removal of a title")
CALL Ctrallbox(3,6,"and restoring the")
CALL Ctrallbox(4,6,"original border")
CALL Ctrallbox(6,6,"Press any key to remove")
CALL Boxtitle(2,"Watch this title",-1,-1)
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
J$ = INKEY$
EXIT LOOP
END IF
IF Needdecon THEN
IF Leftbuttondown THEN
WHILE Leftbuttondown : WEND
EXIT LOOP
END IF
END IF
LOOP UNTIL B! => A! + %autotime +AutoFudge%
CALL Boxtitle(2,"",-1,-1)
FOR I = 1 TO 6
CALL Prteol(I,1)
NEXT
CALL Ctrallbox(1,1,"Notice: No title!")
CALL Pause(1)
END SUB
'[******************]
SUB Screen9'menus
SHARED Mlist$(),Num$()
LOCAL Cc1,Cc2,Barc,Textbc,Highb,Highc
Mlist$(1) = "Onions"
Mlist$(2) = "Beets"
Mlist$(3) = "Peas"
Mlist$(4) = "Tomatoes"
Mlist$(5) = "Beans"
Mlist$(6) = "Corn"
Mlist$(7) = "Carrots"
Mlist$(8) = ""
Mitem% =1
Bmenunum(1,1) = 2 :Bmenunum(1,2)=3
Bmenunum(2,1) = 4 :Bmenunum(2,2)=4
Bmenunum(3,1) = 1
Bmenunum(5,1) = 4
CALL Screen9A("Menu 1 has one letter$selection and a Pointer to$the"+_
" item. Any Character(s)$may be used. Press$Enter after selecting.")
IF Iscolr% THEN
Cc1 = %white
Cc2 = %blue
Cc3 = %black
Cc4 = %red
ELSE
Cc1 = %white
Cc2 = %black
Cc3 = Cc2
Cc4 = Cc1
END IF
CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
CALL Boxtitle(2,"Menu",-1,-1)
IF Iscolr% THEN
Barc = %cyan
Textbc = %brightwhite
Highb = -1
Highc = %brightwhite
Ptrcol% = %red
ELSE
Barc = %white
Textbc = %brightwhite
Highb = %black
Highc = %brightwhite
Ptrcol% = %brightwhite
END IF
CALL Buildmenu_
(Mitem%,1,-1,0,Highc,Highb,Textbc,Barc,3,Mlist$(),-1,Ptrcol%)
CALL Boxtitle(5,Mlist$(Mitem%)+" selected",-1,-1)
CALL Pause(2)
Mlist$(1) = "Power"
Mlist$(2) = "BASIC"
Mlist$(3) = "Is"
Mlist$(4) = "The"
Mlist$(5) = "Best"
Mlist$(6) = "And"
Mlist$(7) = "Fastest"
Mlist$(8) = "@#$"
CALL Screen9A("Menu 2 has first letter$and full bar. Pressing$the key"+_
" of the first$character selects.")
CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
CALL Boxtitle(2,"Menu",-1,-1)
CALL Buildmenu(Mitem%,1,-1,0,Highc,Highb,Textbc,Barc,2,Mlist$(),-1,Ptrcol%)
CALL Boxtitle(5,Mlist$(Mitem%)+" selected",-1,-1)
CALL Pause(2)
Mlist$(1) = "Windows"
Mlist$(2) = "Windows"
Mlist$(3) = "Boxes"
Mlist$(4) = "Both"
Mlist$(5) = "Wonderful"
Mlist$(6) = "Better"
Mlist$(7) = "Fastest"
Mlist$(8) = "@#$"
CALL Screen9A("First letter selection.$Enter is required. If two$"+_
"First letters are the$same, press the key again.")
CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
CALL Boxtitle(2,"Menu",-1,-1)
CALL Buildmenu(Mitem%,1,-1,-1,Highc,Highb,Textbc,Barc,1,Mlist$(),-1,Ptrcol%)
CALL Boxtitle(5,Mlist$(Mitem%)+" selected",-1,-1)
CALL Pause(2)
Mlist$(1) = "F1 = First"
Mlist$(2) = "F2 = Second"
Mlist$(3) = "Third"
Mlist$(4) = "Fourth"
Mlist$(5) = "Fifth"
Mlist$(6) = "Sixth Ctrl-Q"
Mlist$(7) = "Seventh"
Mlist$(8) = "@#$"
Bmenunum(1,1) = 6
Bmenunum(2,1) = 6
Bmenunum(4,1) = 2
Bmenunum(5,1) = 2
Bmenunum(6,1) = 3
Bmenunum(7,1) = 3
Mapkeys% = %true
Bmenukeys$(1,1) = CHR$(0,59) :Bmenukeys$(2,1) = "F"'f1
Bmenukeys$(1,2) = CHR$(0,60) :Bmenukeys$(2,2) = "S"'f2
Bmenukeys$(1,3) = CHR$(17) :Bmenukeys$(2,3) = "X"'^q
Bmenukeys$(1,4) = CHR$(0,61) :Bmenukeys$(2,4) = CHR$(255)'exit With F3
Hote$=Bmenukeys$(1,4)
CALL Screen9A("Menu 2 has letter$and full bar. Pressing$the key"+_
" of the $character or other key$indicated selects.")
CALL Makebox(10,39,9,22,Cc1,Cc2,1,1,0,Cc3,Cc4)
CALL Boxtitle(2,"Menu",-1,-1)
CALL Buildmenu(Mitem%,1,-1,0,Highc,Highb,Textbc,Barc,2,Mlist$(),-1,Ptrcol%)
IF Mitem= 0 AND Buildreturn$ = Hote$ THEN
CALL Boxtitle(5,"Exited with F3",-1,-1)
ELSE
CALL Boxtitle(5,Mlist$(Mitem%),-1,-1)
END IF
Mapkeys% = %false
CALL Pause(2)
END SUB
'[******************]
SUB Screen9A(Message$)
LOCAL Mesline$(),P%,K%,Height%,X%
Height = TALLY(Message$,"$")
REDIM Mesline$(Height)
FOR X = 1 TO Height
P% = INSTR(Message$,"$")
Mesline$(X) = LEFT$(Message$,P%-1)
Message$ = MID$(Message$,P%+1)
NEXT
Mesline$(X) = Message$
IF Iscolr% THEN
CALL Makebox(17,3,Height+3,29,%black,%green,1,2,0,%red,%white)
ELSE
CALL Makebox(17,3,Height+3,29,%black,%white,1,2,0,%black,%white)
END IF
FOR X = 1 TO Height+1
CALL Prtbox(X,1,Mesline$(X))
NEXT
END SUB
'[******************]
SUB Screen10
SHARED Standalone%,A$
LOCAL A!,B!
Standalone% = %true
CALL Screen6
Standalone% = %false
IF EGA OR VGA THEN DECR Wpt
IF Iscolr THEN Cc3 = %black ELSE Cc3 = %brightwhite
CALL Prtattrbox(23,55,"[Any key to Recolor]",Cc3,-1)
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
A$ = INKEY$
EXIT LOOP
END IF
IF Needdecon THEN
IF Leftbuttondown THEN
WHILE Leftbuttondown : WEND
EXIT LOOP
END IF
END IF
LOOP UNTIL B!=>A!+%Autotime +AutoFudge%
IF Iscolr% THEN
CALL Recolor(%black,%brown,-1,-1)
ELSE
CALL Recolor(%black,%white,-1,-1)
END IF
CALL Prteol(23,55)
IF Iscolr% THEN
CALL Prtattrbox(23,55,"[Any key to Recolor]",%red,-1)
ELSE
CALL Prtattrbox(23,55,"[Any key to Recolor]",15,-1)
END IF
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
A$ = INKEY$
EXIT LOOP
END IF
IF Needdecon THEN
IF Leftbuttondown THEN
WHILE Leftbuttondown : WEND
EXIT LOOP
END IF
END IF
LOOP UNTIL B!=>A!+%Autotime +AutoFudge%
IF Iscolr% THEN Cc2 = %blue ELSE Cc2 = %black
CALL Recolor(%brightwhite,Cc2,-1,-1)
CALL Prteol(23,55)
IF Iscolr% THEN Cc3 = %green ELSE Cc3 = %white
CALL Prtattrbox(23,55,"[Any key for menu]",Cc3,-1)
A! = TIMER
DO
B! = TIMER
IF INSTAT THEN
A$ = INKEY$
EXIT LOOP
END IF
IF Needdecon THEN
IF Leftbuttondown THEN
WHILE Leftbuttondown : WEND
EXIT LOOP
END IF
END IF
LOOP UNTIL B!=>A!+%Autotime+Autofudge%
IF EGA OR VGA THEN
INCR Wpt
CALL Removebox
END IF
END SUB
'[******************]
SUB Screen11' Horizontal Pull Down Menu
' This Can Be Pulled Down And Moved With The <-- And --> Keys
LOCAL Window1$,Window2$,Window3$,Window4$
SHARED Newplace
IF Needdecon THEN
CALL Newsavemouse(%true,1,80)
CALL Setlimits(Putmx(1),Putmx(80),Putmy(1),Putmy(1))
Lastmplace = 0
END IF
Window1$ = "PBWindow Info"
Window2$ = "System Info"
Window3$ = "Date & Time"
Window4$ = "Quit"
IF Iscolr% THEN
Atfc% = %red
Atbc% = -1
ELSE
Atfc% = %white
Atbc% = %black
END IF
' Good For Mono And Color.. B&W; place The Windows Across The Top
CALL Makebox(1,1,1,79,0,7,0,0,0,-1,-1)
CALL Prtbox(0,1,Window1$)
CALL Prtbox(0,20,Window2$)
CALL Prtbox(0,40,Window3$)
CALL Prtbox(0,60,Window4$)
CALL Prtattrbox(0,1,Window1$,Atfc%,Atbc)
Place = 1
Fallthrough = %false
CALL Setmousepointerpos(Putmx(10),Putmy(1))
A$=""
Lastmpos = 4
Do'Big LOOP
A! = TIMER
Setup = %false
DO
A$=""
IF Needdecon THEN
CALL Getmouseposandbutton(I,Mpos,J)
Mhere = Getmx(Mpos)
SELECT CASE Mhere
CASE 1 TO 15
IF Lastmpos >15 THEN
A$="P"
Lastmpos = Mhere
EXIT LOOP
END IF
CASE 16 TO 35
IF Lastmpos <16 OR Lastmpos >25 THEN
A$="S"
Lastmpos = Mhere
EXIT LOOP
END IF
CASE 36 TO 49
IF Lastmpos <26 OR Lastmpos >49 THEN
A$="D"
Lastmpos = Mhere
EXIT LOOP
END IF
CASE 50 TO 69
IF Lastmpos <50 OR Lastmpos > 69 THEN
A$="Q"
Lastmpos = Mhere
EXIT LOOP
END IF
END SELECT
IF Leftbuttondown THEN
DO
LOOP WHILE Leftbuttondown
A$=CHR$(13)
EXIT LOOP
END IF
END If'Decon
B! = TIMER
IF INSTAT THEN
A$ = INKEY$
EXIT LOOP
END IF
IF NOT Setup THEN
IF NOT Fallthrough THEN
A$ = CHR$(13)
Fallthrough = %true
ELSE
Fallthrough = %false
A$ = CHR$(0,77)
END IF
Setup = %true
END IF
LOOP UNTIL B!=>A! +%AutoTime +AutoFudge
Match$=UCASE$(LEFT$(Window1$,1)+LEFT$(Window2$,1)+_
LEFT$(Window3$,1)+LEFT$(Window4$,1))
IF INSTR(UCASE$(A$),ANY Match$)>0 THEN A$="$$"+UCASE$(A$)
Newplace = %false
Moved = %false
Exitbigloop = %false
DO 'moved Loop
SELECT CASE LEN(A$)
CASE 1
SELECT CASE A$
CASE CHR$(13)'enter this One Will Be Screen 11
Moved = %false
IF Place = 4 THEN
Exitbigloop = %true
EXIT LOOP
ELSE
CALL Screen12(Place)
IF Newplace THEN
A$ = Keyhit$
Moved = %true
END IF
END IF
END SELECT
CASE 2
SELECT CASE ASC(MID$(A$,2,1))
CASE 75' <---
SELECT CASE Place
CASE 1
CALL Prtbox(0,1,Window1$)
CALL Prtattrbox(0,60,Window4$,_
Atfc%,Atbc%)
Place = 4
CASE 2
CALL Prtbox(0,20,Window2$)
CALL Prtattrbox(0,1,Window1$,_
Atfc%,Atbc%)
DECR Place'= 1
CASE 3
CALL Prtbox(0,40,Window3$)
CALL Prtattrbox(0,20,Window2$,_
Atfc%,Atbc%)
DECR Place'= 2
CASE 4
CALL Prtbox(0,60,Window4$)
CALL Prtattrbox(0,40,Window3$,_
Atfc%,Atbc%)
DECR Place' = 3
END SELECT
CASE 77'--->
SELECT CASE Place
CASE 4
CALL Prtbox(0,60,Window4$)
CALL Prtattrbox(0,1,Window1$,_
Atfc%, Atbc%)
Place = 1
CASE 3
CALL Prtbox(0,40,Window3$)
CALL Prtattrbox(0,60,Window4$,_
Atfc%,Atbc%)
INCR Place' =4
CASE 2
CALL Prtbox(0,20,Window2$)
CALL Prtattrbox(0,40,Window3$,_
Atfc%,Atbc%)
INCR Place'= 3
CASE 1
CALL Prtbox(0,1,Window1$)
CALL Prtattrbox(0,20,Window2$,_
Atfc%,Atbc%)
INCR Place' = 2
END SELECT
CASE 71'home
SELECT CASE Place
CASE 1'nothing.. We Are Home
CASE 2
CALL Prtbox(0,20,Window2$)
CASE 3
CALL Prtbox(0,40,Window3$)
CASE 4
CALL Prtbox(0,60,Window4$)
END SELECT
Place = 1
CALL Prtattrbox(0,1,Window1$,Atfc%,Atbc%)
CASE 79'end
SELECT CASE Place
CASE 1
CALL Prtbox(0,1,Window1$)
CASE 2
CALL Prtbox(0,20,Window2$)
CASE 3
CALL Prtbox(0,40,Window3$)
CASE 4'nothing We Are At The END
END SELECT
CALL Prtattrbox(0,60,Window4$,Atfc%,Atbc%)
Place = 4
END SELECT
IF Moved THEN
SELECT CASE Place
CASE 1
A$ = "$$"+ LEFT$(Window1$,1)
CASE 2
A$ = "$$"+ LEFT$(Window2$,1)
CASE 3
A$ = "$$"+ LEFT$(Window3$,1)
END SELECT
END IF
CASE 3
SELECT CASE Place
CASE 1
Windo$=Window1$
Spot = 1
CASE 2
Windo$=Window2$
Spot = 20
CASE 3
Windo$= Window3$
Spot = 40
CASE 4
Windo$ = Window4$
Spot = 60
END SELECT
SELECT CASE MID$(A$,3,1)
CASE LEFT$(Window1$,1)
CALL Prtbox(0,Spot,Windo$)
CALL Prtattrbox(0,1,Window1$,Atfc%,Atbc%)
Place = 1
CASE LEFT$(Window2$,1)
CALL Prtbox(0,Spot,Windo$)
CALL Prtattrbox(0,20,Window2$,Atfc%,Atbc%)
Place = 2
CASE LEFT$(Window3$,1)
CALL Prtbox(0,Spot,Windo$)
CALL Prtattrbox(0,40,Window3$,Atfc%,Atbc%)
Place = 3
CASE LEFT$(Window4$,1)
CALL Prtbox(0,Spot,Windo$)
CALL Prtattrbox(0,60,Window4$,Atfc%,Atbc%)
Place = 4
END SELECT
IF Moved THEN
A$ = CHR$(13)
END IF
END SELECT
LOOP UNTIL NOT Moved 'moved Loop
LOOP UNTIL Exitbigloop'Big LOOP
DO UNTIL Wpt% = 0
CALL Removebox
LOOP
IF Needdecon THEN
CALL Newsavemouse(%false,%false,%false)
CALL Setlimits(Putmx(1),Putmx(80),Putmy(1),Putmy(25))
END IF
END SUB
'[******************]
SUB Screen12(Where)'places The Asked For Menues
LOCAL Dum$
SHARED Newplace,Mouseversion@,Mousetype$,Mouseirq%,Os$,Ver$
IF Needdecon THEN
Dum=Mouseclick
END IF
IF Iscolr% THEN
Ofc1 = %white'Red
Obc1 = %blue
Obfc1 = -1
Obbc1 = -1
Obbc2 = %magenta
Obfc2 = %green
Obc2 = %cyan
Ofc2 = %cyan
Ofc3 = %black
Obc3 = %cyan
Obfc3 =%ltblue
Obbc3 = %blue
Ofc4 = %red
Obc4 = %white
Obfc4 = %black'Green
Obbc4 = %magenta
Ofc5 = %black
Obc5 = %cyan
Obfc5 = %red
Obbc4 = %white
ELSE
Ofc1 = %white
Obc1 = %black
Obfc1 = -1
Obbc1 = -1
Obfc2 = %black
Obbc2 = %white
Obc2 = %white
Ofc2 = %black
Ofc3 = %black
Obc3 = %white
Obfc3 =%white
Obbc3 = %black
Ofc4 = %white
Obc4 = %black
Obfc4 =%white
Obbc4 = %black
Ofc5 = %white
Obc5 = %black
Obfc5 = %black
Obbc5 = %white
END IF
SELECT CASE Where
CASE 1
'make 6 Windows
CALL Makebox(2,2,4,17,Ofc1,Obc1,2,0,1,Obfc1,Obbc1)
CALL Ctrbox(1,"PowerBASIC")
CALL Ctrbox(2,"By: Robert Zale")
CALL Makebox(6,9,2,2,Ofc2,Obc2,0,0,1,Obfc2,Obbc2)
CALL Makebox(8,1,4,20,Ofc3,Obc3,2,2,0,Obfc3,Obbc3)
CALL Ctrbox(1,"Distributed by:")
CALL Ctrbox(2,"Spectra Publishing")
CALL Makebox(12,4,2,2,Ofc2,Obc2,0,0,1,Obfc2,Obbc2)
CALL Makebox(12,16,2,2,Ofc2,Obc2,0,0,1,Obfc2,Obbc2)
CALL Makebox(14,1,4,20,Ofc4,Obc4,2,2,0,Obfc4,Obbc4)
CALL Ctrbox(1,"PBWindows")
CALL Ctrbox(2,"By: Barry Erick")
CALL Boxtitle(5,"Press any key",-1,-1)
CALL Minormpause(6,1,15,CHR$(255))',2,15,0,0)
' End Case 1
CASE 2
'make 1 Windows
IF Needdecon THEN Numv = 10 ELSE Numv = 8
Dosver$= Dosversion$
IF Os$<>"" THEN INCR Numv
Ll = 1
CALL Makebox(2,19,Numv,22,Ofc5,Obc5,2,0,1,Obfc5,Obbc5)
CALL Prtbox(Ll,2,Os$+ver$+dosver$)
INCR Ll
IF Os$<>"" THEN
CALL Prtbox(Ll,2,Os$+"Version: "+Ver$)
INCR Ll
END IF
CALL Prtbox(Ll,2,Colorormono$+" Video Mode")
INCR Ll
CALL Bootmemory(Memory%,I%)
CALL Prtbox(Ll,2,"Memory:" + STR$(Memory%)+"k")
J$ = STR$(Whatcpu%)
INCR Ll
CALL Prtbox(Ll,2,"A "+MID$(J$,2)+" CPU")
INCR Ll
IF Vgaok THEN
J$="VGA"
ELSEIF Egaok THEN
J$="EGA"
ELSEIF Cgaok THEN
J$="CGA"
ELSEIF NOT Iscolor% THEN
J$="Mono"
END IF
CALL Prtbox(Ll,2,J$ +" Video Adapter")
INCR Ll
IF Needdecon THEN
CALL Prtbox(Ll,2,"A "+mouseType$+" Mouse")
A$=STR$(A\256)+"."+MID$(STR$(A MOD 256),2)
INCR Ll
CALL Prtbox(Ll,2,"Version"+STR$(Mouseversion@)+" found")
INCR Ll
CALL Prtbox(Ll,2,"It uses IRQ"+STR$(Mouseirq))
ELSE
CALL Prtbox(Ll,2,"No Mouse")
END IF
CALL Boxtitle(5,"Press any key",-1,-1)
CALL Minormpause(1,16,35,CHR$(255))',21,42,0,0)
'end Case 2
CASE 3
' Make One Window
CALL Makebox(2,37,4,22,Ofc1,Obc1,2,0,0,-1,-1)
CALL Ctrbox(1,LEFT$(TIME$,5)+" ")
CALL Ctrbox(2,Weekday$+" "+Month$+" "+Day$+","+Year$)
CALL Boxtitle(5,"Press any key",-1,-1)
CALL Minormpause(1,36,49,CHR$(255))',38,59,0,0)
END SELECT
IF LEN(Keyhit$) = 2 THEN
SELECT CASE ASC(MID$(Keyhit$,2,1))
CASE 75,77
Newplace = %true
CASE ELSE
Newplace = %false
Keyhit$=""
END SELECT
ELSE
Newplace = 0
Keyhit$ = ""
END IF
END SUB
SUB Screen13'Bouncing
SHARED Wpt%,Autoit
LOCAL X%,Y%
CALL Makebox(4,37,7,17,%black,%white,1,0,0,-1,-1)
CALL Boxtitle(1,"Bouncing",-1,-1)
CALL Boxtitle(5,"Any Key",-1,-1)
CALL Ctrbox(1,"Windows for")
CALL Ctrbox(2,"PowerBASIC")
A!=TIMER
DO UNTIL INSTAT
CALL Boxscroll(1,-1,-1)
GOSUB Bouncem
IF Outit THEN EXIT LOOP
DELAY .03
CALL Boxscroll(1,-1,-1)
GOSUB Bouncem
IF Outit THEN EXIT LOOP
DELAY .061
CALL Boxscroll(1,-1,-1)
GOSUB Bouncem
IF Outit THEN EXIT LOOP
DELAY .0831
CALL Boxscroll(0,-1,-1)
GOSUB Bouncem
IF Outit THEN EXIT LOOP
DELAY .041
CALL Boxscroll(0,-1,-1)
GOSUB Bouncem
IF Outit THEN EXIT LOOP
DELAY .031
CALL Boxscroll(0,-1,-1)
GOSUB Bouncem
IF Outit THEN EXIT LOOP
DELAY .41
B!=TIMER
IF Autoit THEN
IF B! => A! + %autotime +AutoFudge% THEN EXIT LOOP
END IF
GOSUB Bouncem
IF Outit THEN EXIT LOOP
LOOP
WHILE INKEY$<>"" : WEND
CALL Removebox
EXIT SUB
Bouncem:
IF Needdecon THEN
IF Leftbuttondown THEN
WHILE Leftbuttondown :WEND
Outit=%true
END IF
END IF
RETURN
END SUB
'[******************]
FUNCTION Dosversion$
SHARED Os$,Ver$
REG 1,&h30*256
CALL INTERRUPT &h21
Al = REG(1) MOD 256
Ah = REG(1) \ 256
Al$ = STR$(Al)
Ah$ = STR$(Ah)
Dosversion$ = Al$+"."+MID$(Ah$,2,2)
' Check For Dr Dos.....
J$= ENVIRON$("OS")
IF J$="DRDOS" THEN
Os$ = "DRDOS "
I$= ENVIRON$("VER")
IF I$ <> "" THEN
Ver$ = I$
END IF
ELSE
SELECT CASE REG(2)\256
CASE 0
Ver$="PC-DOS"
CASE ELSE
Ver$="MS-DOS"
END SELECT
END IF
END FUNCTION
'[******************]
FUNCTION Colorormono$
IF Iscolr% THEN
Colorormono$ = "Color"
ELSE
Colorormono$ = "Mono"
END IF
END FUNCTION
'[******************]
SUB Gettypeandversion
SHARED Mouseversion@,Mousetype$,Mouseirq%
CALL Getmouseinfo(A,B)
SELECT CASE B\256
CASE 1
B$="Bus"
CASE 2
B$="Serial"
CASE 3
B$="InPort"
CASE 4
B$="PS/2"
CASE 5
B$="H/P"
END SELECT
Mousetype$=B$
Mouseversion@ = VAL(STR$(A\256)+"."+MID$(STR$(A MOD 256),2))
Mouseirq% = B MOD 256
END SUB
SUB Screenmove
SHARED Wpt%,Autoit
LOCAL X%,Y%,Outit
Outit = %false
X% = 37
Y% = 4
X1% =17
Y1% = 7
Mousemoved% = %false
CALL Makebox(Y%,X%,Y1%,X1%,%black,%white,1,0,0,-1,-1)
CALL Ctrallbox(1,3,"Move This")
CALL Ctrallbox(2,3,"ESC to Exit")
IF Needdecon THEN
CALL Ctrallbox(3,3,"or Right Click")
Xj%=Putmx(X%)
Yj%=Putmy(Y%)
IF EGA THEN
Mxy = 43 -y1
ELSEIF VGA THEN
Mxy = 50 -y1
ELSE
Mxy = Maxcrty-Y1
END IF
CALL Setlimits(Putmx(1),Putmx(Maxcrtx),Putmy(1),Putmy(Mxy))
CALL Setmousepointerpos(Xj%,Yj%)
CALL Readmousecounter(I,J)
Oldmx% = Xj%
Oldmy% = Yj%
CALL Showmouse
END IF
DO
DO
IF Needdecon THEN
IF Leftbuttondown THEN
But%=0
CALL Getmouseposandbutton(But%,Xm%,Ym%)
'check For Movement While Key Is Down... drag
Xx% = Getmx(Xm%)
Yy% = Getmy(Ym%)
SELECT CASE Xx%
CASE = > Oldmx+1
Oldmx = Xx
Oldmy = Yy
Mousemoved=%true
EXIT LOOP
CASE =< Oldmx-1
Mousemoved = %true
Oldmx=Xx
Oldmy=Yy
EXIT LOOP
END SELECT
SELECT CASE Yy%
CASE >Oldmy+1
Mousemoved=%true
Oldmy=Yy
Oldmx=Xx
EXIT LOOP
CASE <Oldmy-1
Mousemoved=%true
Oldmy=Yy
Oldmx=Xx
EXIT LOOP
END SELECT
END IF
END IF
IF INSTAT THEN
Ane$ = INKEY$
EXIT LOOP
END IF
GOSUB Movedm
LOOP UNTIL Outit
IF Mousemoved THEN
X = Oldmx
Y = Oldmy
Mousemoved%=%false
ELSE
SELECT CASE LEN(Ane$)
CASE 1
SELECT CASE Ane$
CASE CHR$(27)'esc
EXIT LOOP
CASE CHR$(13)'cr
EXIT LOOP
END SELECT
CASE 2
Nope = %false
SELECT CASE ASC(MID$(Ane$,2,1))
CASE 77'rt
IF X+X1 < 80 THEN
INCR X
Moveit = %true
Mwhere = 1
END IF
CASE 75'lt
IF X>1 THEN
DECR X
Moveit = %true
Mwhere = 2
END IF
CASE 80'dn
IF Maxy = 0 THEN Maxy=25
IF Y+Y1 < Maxy THEN
INCR Y
Moveit = %true
Mwhere = 3
END IF
CASE 72'up
IF Y > 1 THEN
DECR Y
Moveit = %true
Mwhere = 4
END IF
END SELECT
CASE ELSE
Nope = %true
END SELECT
END IF
CALL Hidemouse
CALL Removebox
CALL Makebox(Y,X,Y1,X1,%black,%white,1,0,0,-1,-1)
CALL Ctrallbox(1,3,"Move This")
CALL Ctrallbox(2,3,"ESC to Exit")
IF Needdecon THEN CALL Ctrallbox(3,3,"or Right Click")
CALL Showmouse
LOOP
IF Needdecon THEN
CALL Setlimits(-1,I,I,I)
CALL Hidemouse
END IF
CALL Removebox
EXIT SUB
Movedm:
IF Needdecon THEN
IF Rightbuttondown THEN
WHILE Rightbuttondown :WEND
Ane$=CHR$(27) 'escape On Right Click
Outit = %true
END IF
END IF
RETURN
END SUB
'[******************]
SUB Screenbackground
IF Iscolr% THEN
Atr = %white'%cyan
ELSE
Atr = %white
END IF
IF EGA THEN
Lns = 43
Chrs = 3440
ELSEIF VGA THEN
Lns = 50
Chrs = 4000
ELSE
Lns = 25
Chrs = 2000
END IF
CALL Fillarea(1,1,Lns,80,176,Atr)
END SUB
'[******************]
$SEGMENT
'[******************]
' For The Demo, have Englishnumbers For The Title Areas
DIM Num$(12)
RESTORE Englishnumbers
FOR X% = 1 TO 12
READ Num$(X%)
NEXT
' Use The Users Background For The Demo
CLS
' This Will Have To Change To Follw Screen Size
LOCATE 1,1,0'turn OFF Cursor
CALL Screenbackground
CALL Date(Month$,B,C,Weekday$)
Day$=LTRIM$(STR$(B))
Year$=LTRIM$(STR$(C))
IF Mouseinstalled THEN
CALL Initmouse(Needdecon,Buttons)
CALL Gettypeandversion
END IF
IF NOT Needdecon THEN Deconforbuild=%false
COLOR %white,%black
CALL Screen1(0)
'make Menu List
Lastmi% = 1
Autoit% = %false
Nonoise% = %true'Pbwindow.Pbu Makes This False When Started, But
' Let'S Keep It Quiet Here To Start
DO
Stickybm% = %true
IF Mlist$(1) <> "Scroll Demo" THEN
Mlist$(1) = "Scroll Demo"
Mlist$(2) = "Window Demo"
Mlist$(3) = "Frames Demo"
Mlist$(4) = "Shadows Demo"
Mlist$(5) = "Title Demo"
Mlist$(6) = "Menu Demo"
Mlist$(7) = "Noise"
Mlist$(8) = "Recolor Demo"
Mlist$(9) = "Zoom"
Mlist$(10) = "Horiz Menu"
Mlist$(11) = "About"
Mlist$(12) = "Bouncing"
Mlist$(13) = "Demo Move"
Mlist$(14) = "Phone Input"
Mlist$(16) = "Quit"
IF Egaok OR Vgaok THEN
Mlist$(17)=""
Mlist$(15)="Set Ega/VGA"
ELSE
Mlist$(16) = ""
Mlist$(15) = "Quit"
END IF
Snu% = Lastmi%
ELSE
Snu% = Lastmi%
END IF
IF Wpt>0 THEN
DO UNTIL Wpt% = 1
CALL Removebox
LOOP
END IF
IF Wpt% = 0 THEN
IF Egaok OR Vgaok THEN
Lines=18
ELSE
Lines = 17
END IF
IF Iscolr% THEN
CALL Makebox(2,2,Lines,22,%yellow,%blue,1,4,0,%blue,%white)
ELSE
CALL Makebox(2,2,Lines,22,%white,%black,1,1,0,%black,%white)
END IF
CALL Boxtitle(2,"Menu",-1,-1)
CALL Boxtitle(5,"Select & hit Enter",-1,-1)
END IF
IF NOT Zoom THEN
Mlist$(9)= "Zoom Off"
ELSE
Mlist$(9) = "Zoom On "
END IF
IF NOT Nonoise% THEN
Mlist$(7) = "Noise On "
ELSE
Mlist$(7) = "Noise Off"
END IF
Autorun% = %true
IF Iscolr% THEN
CALL Buildmenu(Mitem%,Snu%,-1,-1,15,-1,4,3,1,Mlist$(),Autorun%,-1)
ELSE
CALL Buildmenu(Mitem%,Snu%,-1,-1,15,0,0,15,2,Mlist$(),Autorun%,-1)
END IF
'autorun% is A Two Way Street. on The Call, we Sent The
'timeout Value We Wanted. returned Is The State Of Having Returned
'automatically, or Not, %True Says We Did, %False Says We Didn'T
IF Autorun% THEN Autoit% = %true ELSE Autoit% = %false
IF Autoit% THEN
Autobuildtime% = 5'sure.. We Hit Each Time, But Lets Speed It Up
Autofudge% = 0
ELSE
Autobuildtime% = Modifiedautobuildtime%
Autofudge% = Modifiedautofudge%
END IF
SELECT CASE Mitem%
CASE 1
CALL Screen2'scroll Demo
Lastmi% = Mitem%
CASE 2
CALL Screen3'window Demo
Lastmi% = Mitem%
CASE 3
CALL Screen4'frame Demo
CALL Screen5
CALL Screen5A
Lastmi% = Mitem%
CASE 4
CALL Screen6'shadow Demo
CALL Screen7
Lastmi% = Mitem%
CASE 5
CALL Screen8'title Demo
Lastmi% = Mitem%
CASE 6
Lastmi% = Mitem%
CALL Screen9'menu Demo
CASE 7
Nonoise% = NOT Nonoise%
IF NOT Nonoise% THEN
CALL Prtbox(7,10,"On ")
ELSE
CALL Prtbox(7,10,"Off")
END IF
CALL Screen3'window TO SOUND Noise OR NOT
Lastmi% = Mitem%
CASE 8
CALL Screen10'Recolor
Lastmi% = Mitem%
CASE 16
Quitlevel:
DO
CALL Removebox
LOOP UNTIL Wpt% = 0
CALL Screen1(-1)
CALL Hidemouse'For Development
IF VGA OR EGA THEN
CALL Setmode("CGA")
ELSE
CLS
END IF
END
CASE 9
Zoom = NOT Zoom
IF NOT Zoom THEN
CALL Prtbox(9,9,"Off")
ELSE
CALL Prtbox(9,9,"On ")
END IF
CALL Screen4
CALL Screen5
CALL Screen5A
Lastmi% = Mitem%
CASE 10
'horiz Menu
Mlist$(1)="Nothing"' To Allow Redoing It
DO UNTIL Wpt% = 0
CALL Removebox'Kill Menu
LOOP
CALL Screen11
Lastmi% = Mitem%
CASE 12'Bouncing
CALL Screen13
Lastmi%=Mitem%
CASE 11'About
Mlist$(1) = "Nothing"
DO UNTIL Wpt% = 0
CALL Removebox
LOOP
About = %true
CALL Screen1(0)
About = %false
Lastmi% = Mitem%
CASE 13
CALL Screenmove
Lastmi% = Mitem%
CASE 15
IF Vgaok OR Egaok THEN
CALL Screenupdate(%false)
IF VGA OR EGA THEN
CALL Setmode("CGA")
ELSE
CALL Setmode("VGA")
END IF
LOCATE ,,0
CALL Screenbackground
CALL Screenupdate(%true)
Lastmi% = Mitem
ELSE
GOTO Quitlevel
END IF
CASE 14
CALL Screenphone
Lastmi%=Mitem
END SELECT
IF Autoit% THEN
INCR Lastmi%
IF Lastmi% > 12 THEN Lastmi% = 1
END IF
LOOP
CALL Hidemouse'For Development
END
SUB Screenupdate(How)
'if False Save It, else Restore
STATIC Scr$
IF NOT How THEN
DEF SEG = Screensegment%
IF VGA THEN
Scr$=PEEK$(0,8000)
ELSEIF EGA THEN
Scr$=PEEK$(0,6880)
ELSE
Scr$=PEEK$(0,4000)
END IF
ELSE
POKE$ 0,Scr$
Scr$=""
END IF
END SUB
'[******************]
Englishnumbers:
DATA "One ", "Two ", "Three ", "Four", "Five", "Six ", "Seven ", "Eight "
DATA "Nine", "Ten ", "Eleven", "Twelve"
'********************************************
END